Packet data networks are increasingly used for the exchange of realtime audio, video and data communications. The H.323 protocol requires the establishment of a call signaling channel that is separate from the bearer channel. The call signaling channel is used to exchange signaling messages, such as call setup, tear down, address translation and messages related to billing.
In a gatekeeper routed system, a call signaling channel is established between an end point or terminal and a gatekeeper. The gatekeeper is an entity that provides basic call signaling features, enhanced features, address translation, network access control and other functions. The call signaling channel between the end point and a gatekeeper must be maintained in such a system if realtime communications between the terminal and any other terminal are to occur or continue.
Alternate gatekeepers may be provided by a system in case the call signaling channel between the terminal and the gatekeeper with which the terminal was initially registered fails. However, the ability to re-establish the call signaling channel with an alternate gatekeeper is not assured. For example, one or more alternate gatekeepers may not be reachable or may be down. Accordingly, an alternate gatekeeper that is actually available must be found. One approach to locating an available gatekeeper is to attempt to re-establish a transmission control protocol (TCP) connection with each address in the alternate list, one at a time, until a gatekeeper that is actually available is found. However, attempting to establish a TCP connection with each gatekeeper in the alternate list can be an extremely time consuming process, especially when a successful connection is only established towards the end of the list. A TCP connect message could be sent to multiple gatekeepers on the address list simultaneously. Such an approach could make the process of locating a gatekeeper that is actually available faster, however, it is not particularly efficient, as it could result in the generation of excessive network traffic. Furthermore, multiple TCP connections could be established, and then all but one would need to be torn down. Accordingly, needless overhead could be generated. With respect to either of the approaches in which a TCP connection is established, following establishment of the connection, messages need to be exchanged to make sure that the terminal is still registered with the gatekeeper.
Another approach to re-establishing a call signaling channel is to use a “ping” to determine if a gatekeeper is up. However, the use of a ping for this purpose is problematic in situations where the gatekeeper is behind a firewall, as some firewalls filter out the ping message. In addition, as with approaches that seek to establish a TCP connection, additional messages would be required in order to determine if re-registration is necessary.